package com.dp.mallchat.transaction.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 保证方法成功执行。如果在事务内的方法，会将操作记录入库，保证执行。
 */
@Target(ElementType.METHOD)
@Retention(value = RetentionPolicy.RUNTIME)
public @interface SecureInvoke {

    /**
     * 最大重试次数，包含首次
     */
    int maxRetryTimes() default 3;

    /**
     * 是否异步执行，默认异步
     */
    boolean isAsync() default true;


}
